/* eslint valid-jsdoc: "off" */

'use strict'

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */

module.exports = (appInfo) => {
	/**
	 * built-in config
	 * @type {Egg.EggAppConfig}
	 **/
	const config = (exports = {})

	// use for cookie sign key, should change to your own and keep security
	config.keys = appInfo.name + '_1644918500923_4369'

	// add your middleware config here
	config.middleware = ['errorHandler', 'auth']

	config.security = {
		csrf: {
			enable: false,
		},
		domainWhiteList: ['*'], // 白名单
	}
	config.cors = {
		origin: '*', // 跨任何域
		allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS', // 被允许的请求方式
	}
	config.bodyParser = {
		formLimit: '30mb',
		jsonLimit: '30mb',
		textLimit: '30mb',
		// 值的大小可以根据自己的需求修改 这里只做演示
	}
	config.sequelize = {
		dialect: 'mysql',
		host: 'localhost',
		port: 3306,
		database: 'blog',
		username: 'root',
		password: '123456',
		// 配置数据库时间为东八区北京时间
		timezone: '+08:00',
		define: {
			// model的全局配置
			timestamps: true, // 添加create,update,delete时间戳
			paranoid: true, // 添加软删除
			freezeTableName: true, // 防止修改表名为复数
			underscored: true, // 防止驼峰式字段被默认转为下划线
		},
		// 打印日志
		logging: true,
		// 时间格式化
		dialectOptions: {
			dateStrings: true,
			typeCast: true,
		},
	}
	config.bcrypt = {
		saltRounds: 10, // default 10
	}
	config.jwt = {
		secret: 'llvy', //自定义 token 的加密条件字符串
	}
	config.baseUrl = {
		urlSysm: '/api/sysm', // 后台接口
		urlWeb: '/api/web', // 前台接口
	}
	config.auth = {
		whiteUsers: [],
		whiteUrls: ['/login', '/loginOut'],
	}
	return {
		...config,
	}
}
